Method for converting between unicast sessions and a multicast session

ABSTRACT

The invention includes methods for converting between a plurality of unicast sessions and a multicast session. A method for converting from unicast sessions to a multicast session includes receiving a request for establishing a unicast session for delivering content to a first client device, generating a multicast session establishment message adapted for establishing a multicast session with the client device for delivering the content to the client device, and generating at least one multicast session join message for the other client devices, the at least one multicast session join message adapted for enabling the other client devices to join the multicast session. The multicast session establishment message is generated using a threshold number of unicast sessions. A method for converting from a multicast session to a unicast session is provided. A method for converting from a plurality of unicast sessions to a plurality of multicast sessions is provided.

FIELD OF THE INVENTION

The invention relates to the field of communication networks and, morespecifically, to management of unicast sessions and multicast sessions.

BACKGROUND OF THE INVENTION

In general, use of multiparty applications (e.g., live audio/videostreaming) in existing networks may be supported using either multipleunicast connections or a multicast connection. For example, multipleparties may receive the same multiparty content using multiplerespective unicast connections, respectively. Disadvantageously,however, use of unicast connections results in substantial bandwidthwaste. Similarly, for example, multiple parties may receive the samemultiparty content using a multicast connection. Disadvantageously,however, use of multicast connections requires numerous multicastrouters which may be expensive to purchase, configure, and maintain.

SUMMARY OF THE INVENTION

Various deficiencies in the prior art are addressed through theinvention of a method for converting between a plurality of unicastsessions and a multicast session.

A method for converting from unicast sessions to a multicast sessionincludes receiving a request for establishing a unicast session fordelivering content to a first client device, generating a multicastsession establishment message adapted for establishing a multicastsession with the client device for delivering the content to the clientdevice, and generating at least one multicast session join message forthe other client devices, the at least one multicast session joinmessage adapted for enabling the other client devices to join themulticast session. The multicast session establishment message isgenerated in response to a determination that a threshold number ofother unicast sessions exist for delivering the content to a thresholdnumber of other client devices.

A method for converting from a multicast session to a unicast sessionincludes receiving a message terminating an association of a firstclient device with the multicast session, and, in response to adetermination that a threshold number of other client devices areassociated with the multicast session, generating at least one unicastsession join message for the other client devices, the at least oneunicast session join message adapted for enabling the other clientdevices to establish respective unicast sessions.

BRIEF DESCRIPTION OF THE DRAWINGS

The teachings of the present invention can be readily understood byconsidering the following detailed description in conjunction with theaccompanying drawings, in which:

FIG. 1 depicts a high-level block diagram of a communications networkarchitecture;

FIG. 2 depicts a high-level block diagram of a portion of thecommunications network architecture 100 of FIG. 1 according to oneembodiment of the present invention;

FIG. 3 depicts a high-level block diagram of a portion of thecommunications network architecture 100 of FIG. 1 according to oneembodiment of the present invention;

FIG. 4 depicts a high-level block diagram of a portion of thecommunications network architecture 100 of FIG. 1 according to oneembodiment of the present invention; and

FIG. 5 depicts a high-level block diagram of a general-purpose computersuitable for use in performing the functions described herein.

To facilitate understanding, identical reference numerals have beenused, where possible, to designate identical elements that are common tothe figures.

DETAILED DESCRIPTION OF THE INVENTION

The present invention enables conversion of individual unicast sessionsinto a multicast session (or, alternatively, conversion of a multicastsession into individual unicast sessions). The present inventionmaintains a unicast session threshold such that, when the unicastsession threshold is satisfied (i.e., N unicast sessions exists forparticular content requested from a content provider), detection ofanother unicast session request (i.e., for establishing an (N+1)thunicast session) triggers establishment of a multicast session,determination of the original unicast sessions established for therequested content, and conversion of the identified original unicastsessions to the multicast session (i.e., joining the identified originalunicast sessions to the newly established multicast session).

FIG. 1 depicts a high-level block diagram of a communication network 10architecture. As depicted in FIG. 1, communication network architecture100 includes a plurality of SIP clients 101 ₁-101 _(N) and 101 _(N+1)(collectively, SIP clients 101), a SIP proxy server 102, a contentprovider server 104, a multicast server 106, and a SIP applicationserver 108. In general, SIP is a protocol for initiating, modifying, andterminating interactive user sessions supporting various combinations ofvoice, video, instant messaging, presence information, online games, andlike multimedia content. As such, SIP clients 101 include any devicesoperable for receiving and presenting multimedia content from contentprovider server 104 (e.g., SIP phones, computers, and the like). In oneembodiment, SIP clients 101 comprise SIP User Agents (SIP-UAs).

For purposes of clarity, SIP clients 101 ₁-101 _(N) are depicted hereinas one SIP client 101 _(1 . . . N) (where N is greater than or equal toone). As such, although single connections are depicted between SIPclient 101 _(1 . . . N) and other network elements of FIG. 1, thoseskilled in the art will appreciate that when SIP client 101 _(1 . . . N)represents a plurality of SIP clients, each connection is repeated acorresponding plurality of times (i.e., N connections exist for N SIPclients). For example, those skilled in the art will appreciate thatwhen SIP client 101 _(1 . . . N) represents a plurality of SIP clients,the single unicast session (or single multicast session branch) depictedas being associated with SIP client 101 _(1 . . . N) represents acorresponding plurality of unicast sessions (or a correspondingplurality of multicast session branches).

The SIP proxy server 102 enables SIP clients 101 to establish indirectnetwork connections with network services (illustratively, contentprovider server 104, multicast server 106, SIP application server 108,and the like), thereby enabling messaging between SIP clients 101 andthe network services. For example, SIP clients 101 may connect to SIPproxy server 102 for requesting sessions, information, or various otherresources available on other servers (e.g., content provider server 102,multicast server 106, SIP application server 108, and the like). In oneembodiment, SIP proxy server 102 may alter client requests or serverresponses for various purposes.

The content provider server 104 streams multimedia content (e.g., voice,video, instant messaging, presence information, online games, and thelike). The content provider server 104 is operable for streamingmultimedia content directly to SIP clients 101 using unicast sessions.In one embodiment, content provider server 104 streams multimediacontent to multicast server 106 for distribution to SIP clients 101using multicast sessions. The content provider server 104 responds torequests for content by establishing sessions with client devices forconveying content to the client devices. In one embodiment, contentprovider server 104 operates as a SIP-UA adapted for establishing andrunning multiple SIP sessions, and associated multimedia contentstreams, in parallel.

The multicast server 106 is adapted for supporting a unicast sessionwith content provider server 104 for receiving content from contentprovider server 104, and supporting a multicast session with SIP clients101 for multicasting the content to SIP clients 101. The multicastserver 106 is adapted for being configured as a multicast source. TheSIP application server 108 hosts and executes services for performingvarious functions (e.g., responding to requests from SIP clients 101,SIP proxy server 102, content provider server 104, and like networkcomponents). In one embodiment, for example, SIP application server 108is adapted for generating, forwarding, and responding to SIP messages(e.g., SIP INVITE messages, SIP RE-INVITE messages, and the like). Inone embodiment, for example, SIP application server 108 is adapted forusing multicast server 106 as a multicast source supporting mulitcastsessions with SIP clients 101.

As depicted in FIG. 1, SIP clients 101 communicate with SIP proxy serverusing a plurality of paths 111 (collectively, paths 111), SIP proxyserver 102 communicates with content provider server 104 using a path112, content provider server 104 communicates with SIP clients 101 usinga plurality of paths 113 (collectively, paths 113), content providerserver 104 communicates with multicast server 106 using a path 114,multicast server 106 communicates with SIP clients 101 using a pluralityof paths 115 (collectively, paths 115), SIP proxy server 102communicates with SIP application server 108 using a path 116, SIPapplication server 108 communicates with content provider server 104using a path 117, and SIP application server 108 communicates withmulticast server 106 using a path 118. The paths 111-118 comprisecommunication paths for supporting SIP signaling, data streaming, andlike communications required for supporting the present invention.

In different embodiments of the present invention, combinations of SIPclients 101, SIP proxy server 102, content provider server 104, amulticast server 106, and a SIP application server 108 may be used forconverting unicast sessions to one or more multicast sessions.Similarly, in different embodiments of the present invention,combinations of SIP clients 101, SIP proxy server 102, content providerserver 104, a multicast server 106, and a SIP application server 108 maybe used for converting a multicast session to a plurality of unicastsessions. Although depicted and described herein as supporting specificfunctions, SIP clients 101, SIP proxy server 102, content providerserver 104, multicast server 106, and SIP application 108 may supportvarious other functions for implementing different embodiments of thepresent invention.

In one embodiment, the present invention utilizes a unicast sessionthreshold (denoted as N) for determining whether a transition from aplurality of unicast sessions to a multicast session is performed. Inone embodiment, at least one network element maintains the unicastsession threshold. In one embodiment, unicast session threshold isassociated with particular content requested from content providerserver 104. In one embodiment, the unicast session threshold is static.In another embodiment, unicast session threshold is dynamic. In one suchembodiment, the unicast session threshold may be changed based on costchanges, resource availability, and the like.

Upon receiving a session establishment request from a SIP client forestablishing a session to that SIP client, a determination is made as towhether the unicast session threshold is satisfied. In one embodiment,depicted and described herein with respect to FIG. 2 and FIG. 3, contentprovider server 104 maintains the unicast session threshold. In oneembodiment, depicted and described herein with respect to FIG. 4, SIPapplication server 108 maintains the unicast session threshold. Althoughdepicted and described as being maintained by content provider server104 or SIP application server 108, the unicast session threshold may bemaintained by various other network elements.

In one embodiment of the present invention, if less than N SIP clientshave established unicast sessions for the requested content, a unicastsession is established with the SIP client (denoted as SIP client 101_(1 . . . N)) in response to the session establishment request from SIPclient 101 _(1 . . . N). If N SIP clients have established unicastsessions for the requested content, a multicast session is establishedwith the SIP client (denoted as SIP client 101 _(N+1)) in response tothe session establishment request from SIP 101 _(N+1), and the N unicastsessions associated with SIP client 101 _(1 . . . N) are converted fromrespective unicast sessions to the established multicast session.

As such, a session establishment request from an (N+1)th SIP client(where associated SIP clients 1 through N have N existing unicastsessions, respectively, with content provider server 104, where each ofthe existing unicast sessions is established for providing the samemedia content) requesting establishment of an (N+1)th unicast sessiontriggers establishment of a multicast session to SIP client 101 _(N+1),as well as the join of each of the unicast sessions associated with SIPclients 101 _(1 . . . N) to the multicast session. The operation of SIPclients 101, SIP proxy server 102, content provider server 104,multicast server 106, and SIP application server 108 in convertingunicast sessions into a multicast session is depicted and described withrespect to FIG. 2, FIG. 3, and FIG. 4.

FIG. 2 depicts a high-level block diagram of a portion of thecommunications network architecture 100 of FIG. 1 according to oneembodiment of the present invention. The signaling depicted anddescribed with respect to FIG. 2 is performed in accordance with oneembodiment of the present invention. As depicted in FIG. 2, SIP clients101 _(1 . . . N) and 101 _(N+1), SIP proxy server 102, and contentprovider server 104 cooperate for converting a plurality of unicastsessions into a multicast session. For purposes of clarity, SIP INVITEand RE-INVITE signaling messages are displayed while other SIP signalingmessages (e.g., TRYING, RINGING, 200 OK, ACK, and the like) are omitted.As depicted in FIG. 2, SIP signaling is represented using dashed-lineconnections, unicast session signaling is represented using single-lineconnections, and multicast session signaling is represented usingdouble-line connections.

As depicted in FIG. 2, SIP client 101 _(1 . . . N) sends SIP INVITEmessage 202 _(1 . . . N) to SIP proxy server 102 indicating that SIPclient 101 _(1 . . . N) is requesting establishment of a unicast sessionfrom content provider server 104. The SIP proxy server 102 sends SIPINVITE message 204 _(1 . . . N) (i.e., forwards SIP INVITE message 202_(1 . . . N)) to content provider server 104.-Although depicted asindividual SIP INVITE messages (i.e., SIP INVITE message 202_(1 . . . N) and SIP INVITE message 204 _(1 . . . N)), separate SIPINVITE messages 202 ₁-202 _(N) (represented herein as SIP INVITE message202 _(1 . . . N)) are generated by SIP clients 101 ₁-101 _(N)(represented herein as SIP client 101 _(1 . . . N)), and separate SIPINVITE messages 204 ₁-204 _(N) (represented herein as SIP INVITE message204 _(1 . . . N)) are forward to content provider server 104 by SIPproxy server 102.

Upon receiving SIP INVITE message 204 _(1 . . . N) from SIP proxy server102, content provider server 104 establishes UNICAST SESSION 206_(1 . . . N) with SIP client 101 _(1 . . . N). The UNICAST SESSION 206_(1 . . . N) is adapted for delivering requested content from contentprovider server 104 to SIP client 101 _(1 . . . N). Although depicted asone UNICAST SESSION 206 _(1 . . . N), separate UNICAST SESSIONS 206₁-206 _(N) (represented herein as UNICAST SESSION 206 _(1 . . . N)) areassociated with corresponding SIP clients 101 ₁-101 _(N) (representedherein as SIP client 101 _(1 . . . N)), respectively. Although anycontent may be delivered from content provider server 104 to SIP clients101 ₁-101 _(N) using corresponding UNICAST SESSIONS 206 ₁-206 _(N), forpurposes of clarity, UNICAST SESSIONS 206 ₁-206 _(N) depicted in FIG. 2are assumed to deliver identical content to each of SIP clients 101₁-101 _(N), respectively.

As depicted in FIG. 2, at a time at which UNICAST SESSION 206_(1 . . . N) exists between content provider server 104 and SIP client101 _(1 . . . N), SIP client 101 _(N+1) sends SIP INVITE message 208 toproxy server 102, thereby indicating that SIP client 101 _(N+1) isrequesting establishment of a unicast session from content providerserver 104. The SIP proxy server 102 sends SIP INVITE message 210 (i.e.,forwards SIP INVITE message 208) to content provider server 104. Uponreceiving SIP INVITE message 210, content provider server 104 determineswhether the unicast session threshold (described herein with respect toFIG. 1) is satisfied for the content requested from content providerserver 104. Since, as depicted in FIG. 2, the unicast session thresholdis satisfied (i.e., N unicast sessions exist with SIP clients 101 ₁-101_(N), respectively), content provider server 104 establishes a MULTICASTSESSION 212, having MULTICAST SESSION BRANCH 218 _(N+1), with SIP client101 _(N+1) for delivering requested content from content provider server104 to SIP client 101 _(N+1).

In one embodiment of the present invention, upon establishment ofMULTICAST SESSION 212 with SIP client 101 _(N+1), content providerserver 104 identifies (for the content requested by SIP client 101_(N+1)) each SIP client having an existing unicast session with contentprovider server 104 (illustratively, SIP client 101 _(1 . . . N) havingassociated UNICAST SESSION 206 _(1 . . . N)). The content providerserver 104 generates SIP RE-INVITE message 214 _(1 . . . N) for SIPclient 101 _(1 . . . N). The content provider server 104 sends SIPRE-INVITE message 214 _(1 . . . N) to SIP proxy server 102. The SIPproxy server 102 sends SIP RE-INVITE message 216 _(1 . . . N) (i.e.,forwards SIP RE-INVITE message 241 _(1 . . . N)) to SIP client 101_(1 . . . N). Although depicted as one SIP RE-INVITE message (i.e., SIPRE-INVITE message 214 _(1 . . . N) and SIP RE-INVITE message 216_(1 . . . N)) separate SIP RE-INVITE messages 214 ₁-214 _(N) and 216 ₁₋₂₁₆ _(N) are associated with SIP clients 101 ₁-101 _(N), respectively.

In one embodiment of the present invention, SIP RE-INVITE message 214_(1 . . . N) and associated SIP RE-INVITE message 216 _(1 . . . N) areadapted for inviting SIP client 101 _(1 . . . N) to join MULTICASTSESSION 212 established between content provider server 104 and SIPclient 101 _(N+1) (i.e., adapted for converting UNICAST SESSION 206_(1 . . . N) established with SIP client 101 _(1 . . . N) tocorresponding multicast session branches of MULTICAST SESSION 212). Uponreceiving SIP RE-INVITE MESSAGE 216 _(1 . . . N) from SIP proxy server102, SIP client 101 _(1 . . . N) may join MULTICAST SESSION 212established between content provider server 104 and SIP client 101_(N+1) using one of a plurality of multicast session join techniques.

In one embodiment, SIP client 101 _(1 . . . N) joins MULTICAST SESSIONBRANCH 218 _(1 . . . N) of MULTICAST SESSION 212 using standardmulticast session join techniques as known in the art. In anotherembodiment, SIP client 101 _(1 . . . N) joins MULTICAST SESSION BRANCH218 _(1 . . . N) of MULTICAST SESSION 212 using SIP signaling. Althoughdescribed with respect to standard multicast session join techniques andSIP signaling, various other multicast session join techniques may beused in accordance with various embodiments of the present invention.Using such multicast session join techniques, content provider server104 thereby forms MULTICAST SESSION BRANCH 218 _(1 . . . N) with SIPclient 101 _(1 . . . N). The MULTICAST SESSION BRANCH 218 _(N+1)associated with SIP client 101 _(N+1) and MULTICAST SESSION BRANCH 218_(1 . . . N) associated with SIP client 101 _(1 . . . N) collectivelyform MULTICAST SESSION 212.

FIG. 3 depicts a high-level block diagram of a portion of thecommunications network architecture 100 of FIG. 1 according to oneembodiment of the present invention. The signaling depicted anddescribed with respect to FIG. 3 is performed in accordance with oneembodiment of the present invention. As depicted in FIG. 3, SIP clients101 _(1 . . . N) and 101 _(N+1), SIP proxy server 102, content providerserver 104, and multicast server 106 cooperate for converting aplurality of unicast sessions into a multicast session. For purposes ofclarity, SIP INVITE and RE-INVITE signaling messages are displayed whileother SIP signaling messages (e.g., TRYING, RINGING, 200 OK, ACK, andthe like) are omitted. As depicted in FIG. 3, SIP signaling isrepresented using dashed-line connections, unicast session signaling isrepresented using single-line connections, and multicast sessionsignaling is represented using double-line connections.

As depicted in FIG. 3, SIP client 101 _(1 . . . N) sends SIP INVITEmessage 302 _(1 . . . N) to SIP proxy server 102 indicating that SIPclient 101 _(1 . . . N) is requesting establishment of a unicast sessionfrom content provider server 104. The SIP proxy server 102 sends SIPINVITE message 304 _(1 . . . N) (i.e., forwards SIP INVITE message 302_(1 . . . N)) to content provider server 104. Although depicted asindividual SIP INVITE messages (i.e., SIP INVITE message 302_(1 . . . N) and SIP INVITE message 304 _(1 . . . N)), separate SIPINVITE messages 302 ₁-302 _(N) (represented herein as SIP INVITE message302 _(1 . . . N)) are generated by SIP clients 101 ₁-101 _(N)(represented herein as SIP client 101 _(1 . . . N)), and separate SIPINVITE messages 304 ₁-304 _(N) (represented herein as SIP INVITE message304 _(1 . . . N)) are forwarded to content provider server 104 by SIPproxy server 102.

Upon receiving SIP INVITE message 304 _(1 . . . N) from SIP proxy server102, content provider server 104 establishes UNICAST SESSION 306_(1 . . . N) with SIP client 101 _(1 . . . N). The UNICAST SESSION 306_(1 . . . N) is adapted for delivering requested content from contentprovider server 104 to SIP client 101 _(1 . . . N). Although depicted asone UNICAST SESSION 306 _(1 . . . N), separate UNICAST SESSIONS 306₁-306 _(N) (represented herein as UNICAST SESSION 306 _(1 . . . N)) areassociated with corresponding SIP clients 101 ₁-101 _(N) (representedherein as SIP client 101 _(1 . . . N)), respectively. Although anycontent may be delivered from content provider server 104 to SIP clients101 ₁-101 _(N) using corresponding UNICAST SESSIONS 306 ₁-306 _(N), forpurposes of clarity, UNICAST SESSIONS 306 ₁-306 _(N) depicted in FIG. 3are assumed to deliver identical content to each of SIP clients 101₁-101 _(N), respectively.

As depicted in FIG. 3, at a time at which UNICAST SESSION 306_(1 . . . N) exists between content provider server 104 and SIP client101 _(1 . . . N), SIP client 101 _(N+1) sends SIP INVITE message 308 toproxy server 102, thereby indicating that SIP client 101 _(N+1) isrequesting establishment of a unicast session from content providerserver 104. The SIP proxy server 102 sends SIP INVITE message 310 (i.e.,forwards SIP INVITE message 308) to content provider server 104. Uponreceiving SIP INVITE message 310, content provider server 104 determineswhether the unicast session threshold (described herein with respect toFIG. 1) is satisfied for the content requested from content providerserver 104. As depicted in FIG. 3, the unicast session threshold issatisfied (i.e., N unicast sessions exist with SIP clients 101 ₁-101_(N), respectively).

Since, as depicted in FIG. 3, the unicast session threshold is satisfiedcontent provider server 104 sends CREATE MULTICAST SOURCE message 312 tomulticast server 106. As depicted in FIG. 3, CREATE MULTICAST SOURCEmessage 312 is adapted for configuring multicast server 106 as thesource of a multicast session by which the requested content is providedto SIP client 101 _(N+1) (and, following conversion of UNICAST SESSION306 _(1 . . . N) to the multicast session, to SIP client 101_(1 . . . N)). Upon receiving CREATE MULTICAST SOURCE message 312,multicast server 106 establishes a MULTICAST SESSION 316, havingMULTICAST SESSION BRANCH 322 _(N+1), with SIP client 101 _(N+1) fordelivering requested content from content provider server 104 to SIPclient 101 _(N+1).

During generation and transmission of CREATE MULTICAST SOURCE message312 to multicast server 106, and processing of CREATE MULTICAST SOURCEmessage 312 by multicast server 106 for establishing MULTICAST SESSION316, content provider server 104 establishes a UNICAST SESSION 314 withmulticast server 106. The content provider server 104 delivers requestedcontent to multicast server 106 using UNICAST SESSION 314. The multicastserver 106 forwards the requested content delivered by content providerserver 104 to SIP client 101 _(N+1) using MULTICAST SESSION BRANCH 322_(N+1) of MULTICAST SESSION 316. As such, content provider server 104 isnot configured as the multicast source for MULTICAST SESSION 316;rather, content provider server 104 configures multicast server 106 asthe multicast source for MULTICAST SESSION 316 using CREATE MULTICASTSOURCE message 312.

In one embodiment of the present invention, upon establishment ofUNICAST SESSION 314 with multicast server 106 (as well as establishmentof MULTICAST SESSION 316 between multicast server 106 and SIP client 101_(N+1)) content provider server 104 identifies (for the contentrequested by SIP client 101 _(N+1)) each SIP client having an existingunicast session with content provider server 104 (illustratively, SIPclient 101 _(1 . . . N) having associated UNICAST SESSION 306_(1 . . . N)). The content provider server 104 generates SIP RE-INVITEmessage 318 _(1 . . . N) for SIP client 101 _(1 . . . N). The contentprovider server 104 sends SIP RE-INVITE message 318 _(1 . . . N) to SIPproxy server 102. The SIP proxy server 102 sends SIP RE-INVITE message320 _(1 . . . N) (i.e., forwards SIP RE-INVITE message 318 _(1 . . . N))to SIP client 101 _(1 . . . N). Although depicted as one SIP RE-INVITEmessage (i.e., SIP RE-INVITE message 318 _(1 . . . N) and SIP RE-INVITEmessage 320 _(1 . . . N)) separate SIP RE-INVITE messages 318 ₁-318 _(N)and 320 ₁-320 _(N) are associated with SIP clients 101 ₁-101 _(N),respectively.

In one embodiment of the present invention, SIP RE-INVITE message 318_(1 . . . N) and associated SIP RE-INVITE message 320 _(1 . . . N) areadapted for inviting SIP client 101 _(1 . . . N) to join MULTICASTSESSION 316 established between multicast server 106 and SIP client 101_(N+1) (i.e., adapted for converting UNICAST SESSION 306 _(1 . . . N)established between content provider server 104 and SIP client 101_(1 . . . N) to corresponding multicast session branches of MULTICASTSESSION 316 between multicast server 106 and SIP client 101_(1 . . . N)). Upon receiving SIP RE-INVITE MESSAGE 320 _(1 . . . N)from SIP proxy server 102, SIP client 101 _(1 . . . N) may joinMULTICAST SESSION 316 established between multicast server 106 and SIPclient 101 _(N+1) using one of a plurality of multicast session jointechniques.

In one embodiment, SIP client 101 ₁. N joins MULTICAST SESSION BRANCH322 _(1 . . . N) of MULTICAST SESSION 316 using standard multicastsession join techniques as known in the art. In another embodiment, SIPclient 101 _(1 . . . N) joins MULTICAST SESSION BRANCH 322 _(1 . . . N)of MULTICAST SESSION 316 using SIP signaling. Although described withrespect to standard multicast session join techniques and SIP signaling,various other multicast session join techniques may be used inaccordance with one embodiment of the present invention. Using suchmulticast session join techniques, multicast server 106 thereby formsMULTICAST SESSION BRANCH 322 _(1 . . . N) with SIP client 101_(1 . . . N). The MULTICAST SESSION BRANCH 322 _(N+1) associated withSIP client 101 _(N+1) and MULTICAST SESSION BRANCH 322 _(1 . . . N)associated with SIP client 101 _(1 . . . N) collectively form MULTICASTSESSION 316.

FIG. 4 depicts a high-level block diagram of a portion of thecommunications network architecture 100 of FIG. 1 according to oneembodiment of the present invention. The signaling depicted anddescribed with respect to FIG. 4 is performed in accordance with oneembodiment of the present invention. As depicted in FIG. 4, SIP clients101 _(1 . . . N) and 101 _(N+1), SIP proxy server 102, content providerserver 104, multicast server 106, and SIP application server 108cooperate for converting a plurality of unicast sessions into amulticast session. For purposes of clarity, SIP INVITE and RE-INVITEsignaling messages are displayed while other SIP signaling messages(e.g., TRYING, RINGING, 200 OK, ACK, and the like) are omitted. Asdepicted in FIG. 4, SIP signaling is represented using dashed-lineconnections, unicast session signaling is represented using single-lineconnections, and multicast session signaling is represented usingdouble-line connections.

As depicted in FIG. 4, SIP client 101 _(1 . . . N) sends SIP INVITEmessage 402 _(1 . . . N) to SIP proxy server 102 indicating that SIPclient 101 _(1 . . . N) is requesting establishment of a unicast sessionfrom content provider server 104. The SIP proxy server 102 sends SIPINVITE message 404 _(1 . . . N) (i.e., forwards SIP INVITE message 402_(1 . . . N)) to SIP application server 108. The SIP application server108 sends SIP INVITE message 406 _(1 . . . N) (i.e., forwards SIP INVITEmessage 404 _(1 . . . N)) to content provider server 104. Althoughdepicted as individual SIP INVITE messages (i.e., SIP INVITE message 402_(1 . . . N), 404 _(1 . . . N), and 406 _(1 . . . N)), separate SIPINVITE messages 402 ₁-402 _(N) are generated by SIP clients 101 ₁-101_(N), separate SIP INVITE messages 404 ₁-404 _(N) are forwarded to SIPapplication server 108 by SIP proxy server 102, and separate SIP INVITEmessages 304 ₁-304 _(N) are forward to content provider server 104 bySIP application server 108.

Upon receiving SIP INVITE message 406 _(1 . . . N) from SIP applicationserver 108, content provider server 104 establishes UNICAST SESSION 408_(1 . . . N) with SIP client 101 _(1 . . . N). The UNICAST SESSION 408_(1 . . . N) is adapted for delivering requested content from contentprovider server 104 to SIP client 101 _(1 . . . N). Although depicted asone UNICAST SESSION 408 _(1 . . . N), separate UNICAST SESSIONS 408₁-408 _(N) (represented herein as UNICAST SESSION 408 _(1 . . . N)) areassociated with corresponding SIP clients 101 ₁-101 _(N) (representedherein as SIP client 101 _(1 . . . N)), respectively. Although anycontent may be delivered from content provider server 104 to SIP clients101 ₁-101 _(N) using corresponding UNICAST SESSIONS 408 ₁-408 _(N), forpurposes of clarity, UNICAST SESSIONS 408 ₁-408 _(N) depicted in FIG. 4are assumed to deliver identical content to each of SIP clients 101₁-101 _(N), respectively.

As depicted in FIG. 4, at a time at which UNICAST SESSION 408_(1 . . . N) exists between content provider server 104 and SIP client101 _(1 . . . N), SIP client 101 _(N+1) sends SIP INVITE message 410 toSIP proxy server 102, thereby indicating that SIP client 101 _(N+1) isrequesting establishment of a unicast session from content providerserver 104. The SIP proxy server 102 sends SIP INVITE message 412 (i.e.,forwards SIP INVITE message 410) to SIP application server 108. Uponreceiving SIP INVITE message 412, SIP application server 108 determineswhether the unicast session threshold (described herein with respect toFIG. 1) is satisfied for the content requested from content providerserver 104. As depicted in FIG. 4, the unicast session threshold issatisfied (i.e., N unicast sessions exist with SIP clients 101 ₁-101_(N), respectively).

Since, as depicted in FIG. 4, the unicast session threshold issatisfied, SIP application server 108 sends CREATE MULTICAST SOURCEmessage 414 to multicast server 106. As depicted in FIG. 4, CREATEMULTICAST SOURCE message 414 is adapted for configuring multicast server106 as the source of a multicast session by which the requested contentis provided to SIP client 101 _(N+1) (and, following conversion ofUNICAST SESSION 408 _(1 . . . N) to the multicast session, to SIP client101 _(1 . . . N)). During generation and transmission of CREATEMULTICAST SOURCE message 414 to multicast server 106, and processing ofCREATE MULTICAST SOURCE message 414 by multicast server 106 forestablishing a multicast session (illustratively, MULTICAST SESSION420), SIP application server 108 sends a SIP INVITE message 416 tocontent provider server 104.

Upon receiving SIP INVITE message 416 from SIP application server 108,content provider server 104 establishes a UNICAST SESSION 418 withmulticast server 106. During generation and transmission of SIP INVITEmessage 416 to content provider server 104, and establishment of UNICASTSESSION 418 from content provider server 104 to multicast server 106,multicast server 106 establishes a MULTICAST SESSION 420, havingMULTICAST SESSION BRANCH 426 _(N+1), with SIP client 101 _(N+1) fordelivering requested content from content provider server 104 to SIPclient 101 _(N+1). In one embodiment, multicast server 106 generatesMULTICAST SESSION 420 in response to CREATE MULTICAST SOURCE message 414and establishment of UNICAST SESSION 418 by content provider server 104.

As depicted in FIG. 4, content provider server 104 delivers requestedcontent to multicast server 106 using UNICAST SESSION 418. The multicastserver 106 forwards the requested content delivered by content providerserver 104 to SIP client 101 _(N+1) using MULTICAST SESSION BRANCH 426_(N+1) of MULTICAST SESSION 420. As such, content provider server 104 isnot configured as the multicast source for MULTICAST SESSION 420;rather, SIP application server 108 (in cooperation with content providerserver 104) configures multicast server 106 as the multicast source forMULTICAST SESSION 420. As such, requested content intended for SIPclient 101 _(N+1) is provided from content provider server 104 to SIPclient 101 _(N+1) using UNICAST SESSION 418 and MULTICAST SESSION 420.

In one embodiment of the present invention, upon establishment ofUNICAST SESSION 418 with multicast server 106 (as well as establishmentof MULTICAST SESSION 420 between multicast server 106 and SIP client 101_(N+1)) SIP application server 108 identifies (for the content requestedby SIP client 101 _(N+1)) each SIP client having an existing unicastsession with content provider server 104 (illustratively, SIP client 101_(1 . . . N) having associated UNICAST SESSION 408 _(1 . . . N)). TheSIP application server 108 generates SIP RE-INVITE message 422_(1 . . . N) for SIP client 101 _(1 . . . N). The SIP application server104 sends SIP RE-INVITE message 422 _(1 . . . N) to SIP proxy server102. The SIP proxy server 102 sends SIP RE-INVITE message 424_(1 . . . N) (i.e., forwards SIP RE-INVITE message 422 _(1 . . . N)) toSIP client 101 _(1 . . . N). Although depicted as one SIP RE-INVITEmessage (i.e., SIP RE-INVITE message 422 _(1 . . . N) and SIP RE-INVITEmessage 424 _(1 . . . N)) separate SIP RE-INVITE messages 422 ₁-422 _(N)and 424 ₁-424 _(N) are associated with SIP clients 101 ₁-101 _(N),respectively.

In one embodiment of the present invention, SIP RE-INVITE message 422_(1 . . . N) and associated SIP RE-INVITE message 424 _(1 . . . N) areadapted for inviting SIP client 101 _(1 . . . N) to join MULTICASTSESSION 420 established between multicast server 106 and SIP client 101_(N+1) (i.e., adapted for converting UNICAST SESSION 408 _(1 . . . N)established between content provider server 104 and SIP client 101_(1 . . . N) to corresponding multicast session branches of MULTICASTSESSION 420 between multicast server 106 and SIP client 101_(1 . . . N)). Upon receiving SIP RE-INVITE MESSAGE 424 _(1 . . . N)from SIP proxy server 102, SIP client 101 _(1 . . . N) may joinMULTICAST SESSION 420 established between multicast server 106 and SIPclient 101 _(N+1) using one of a plurality of multicast session jointechniques.

In one embodiment, SIP client 101 _(1 . . . N) joins MULTICAST SESSIONBRANCH 426 _(1 . . . N) of MULTICAST SESSION 420 using standardmulticast session join techniques as known in the art. In anotherembodiment, SIP client 101 _(1 . . . N) joins MULTICAST SESSION BRANCH426 _(1 . . . N) of MULTICAST SESSION 420 using SIP signaling. Althoughdescribed with respect to standard multicast session join techniques andSIP signaling, various other multicast session join techniques may beused in accordance with one embodiment of the present invention. Usingsuch multicast session join techniques, multicast server 106 therebyforms MULTICAST SESSION BRANCH 426 _(1 . . . N) with SIP client 101_(1 . . . N). The MULTICAST SESSION BRANCH 426 _(N+1) associated withSIP client 101 _(N+1) and MULTICAST SESSION BRANCH 426 _(1 . . . N)associated with SIP client 101 _(1 . . . N) collectively form MULTICASTSESSION 420.

Although not depicted with respect to FIG. 4, receiving a SIP 200 OKmessage from SIP client 10 _(1 . . . N) triggers a SIP BYE message fromSIP application server 108 to content provider server 104. In oneembodiment, a SIP BYE message from the (N+1)th SIP client 101 _(N+1)should not be forwarded to content provider server 104 since it woulddrop the multicast stream. In this embodiment, the SIP BYE message fromSIP client 101 _(N+1) may be cached (e.g., in SIP application server108) until a condition is satisfied, at which point the SIP BYE messagefrom SIP client 101 _(N+1) is delivered to content provider server 104.In this embodiment, the condition may comprise a determination that allSIP clients 101 have sent associated SIP BYE messages for leaving themulticast session, until a decision is made to convert the multicastsession back to a plurality of unicast sessions, and the like, as wellas various combinations thereof.

FIG. 5 depicts a high-level block diagram of a general purpose computersuitable for use in performing the functions described herein. Asdepicted in FIG. 4, system 500 comprises a processor element 502 (e.g.,a CPU), a memory 504, e.g., random access memory (RAM) and/or read onlymemory (ROM), a SIP session conversion module 505, and variousinpuVoutput devices 506 (e.g., storage devices, including but notlimited to, a tape drive, a floppy drive, a hard disk drive or a compactdisk drive, a receiver, a transmitter, a speaker, a display, an outputport, and a user input device (such as a keyboard, a keypad, a mouse,and the like)).

It should be noted that the present invention may be implemented insoftware and/or in a combination of software and hardware, e.g., usingapplication specific integrated circuits (ASIC), a general purposecomputer or any other hardware equivalents. In one embodiment, thepresent SIP session conversion module or process 505 can be loaded intomemory 504 and executed by processor 502 to implement the functions asdiscussed above. As such, SIP session conversion process 505 (includingassociated data structures) of the present invention can be stored on acomputer readable medium or carrier, e.g., RAM memory, magnetic oroptical drive or diskette and the like.

Although primarily described herein with respect to conversion of aplurality of unicast sessions into one multicast session, in oneembodiment of the present invention, a plurality of unicast sessions maybe converted into a plurality of multicast sessions. For example, in oneembodiment, following a determination that the unicast session thresholdhas been satisfied, the existing unicast sessions may be converted intotwo multicast sessions, three multicast session, and the like. In onesuch embodiment, the number of multicast sessions into which theplurality of unicast sessions is converted may depend upon the unicastsession threshold. In one embodiment, following conversion of aplurality of unicast sessions into a multicast session, subsequentrequests for establishment of unicast requests for the content may beserved through creation of additional unicast sessions, rather thanjoining the client devices to the existing multicast session. Uponsatisfying the unicast session threshold, the client devices may then beconverted to another multicast session.

In another such embodiment, the number of multicast sessions into whichthe plurality of unicast sessions is converted may depend upon theencoder-decoder (codec) types associated with each of the unicastsessions. In this embodiment, clients associated with the unicastsession being converted into the multicast sessions may be groupedaccording to codec type. In one such embodiment, a multicast session maythen be created for each codec type group (i.e., each codec type grouphas a different associated multicast session). In another suchembodiment, a multicast session may then be created for one or morecodec type groups (i.e., codec type groups may be further groupedtogether such that clients associated with a plurality of codec typegroups all belong to the same multicast session).

Although primarily described herein with respect to conversion ofunicast sessions into a multicast session, in one embodiment of thepresent invention, a multicast session may be converted into a pluralityof individual unicast sessions. In one embodiment, a method forconverting a multicast session into a plurality of unicast sessionsincludes receiving a message requesting termination of an association ofa first client device with the multicast session, and, in response to adetermination that a threshold number of other client devices areassociated with the multicast session, generating at least one unicastsession join message for the other client devices, the at least oneunicast session join message adapted for enabling the other clientdevices to establish respective unicast sessions for receiving therequested content.

In one embodiment, in which a multicast session is converted into aplurality of individual unicast sessions, a multicast session threshold(denoted as M) may be used for conversion of the multicast session intoa plurality of unicast session. Upon detecting termination of amulticast branch of an existing multicast session, a determination ismade as to whether the multicast session threshold is satisfied. Ifgreater than M SIP clients belong to the multicast session after thetermination of the multicast branch, the multicast session ismaintained. If M SIP clients belong to the multicast session after thetermination of the multicast branch, the multicast session is convertedinto M individual unicast sessions.

Although primarily described herein with respect to specificconfigurations of SIP-enabled network elements, those skilled in the artwill appreciate the methodologies of the present invention may beadapted for use with various other configurations of SIP-enabled networkelements. Although primarily described herein with respect to SIPsignaling, those skilled in the art will appreciate the methodologies ofthe present invention may be adapted for use with various othersignaling protocols. Although primarily described herein with respect tosignaling within an IP network, those skilled in the art will appreciatethe methodologies of the present invention may be adapted for use withvarious other networks. As such, conversion of unicast sessions into amulticast session in accordance with various embodiments of the presentinvention is not intended to be limited by node configuration, signalingprotocol, network type, content type, or any other technology specificimplementation.

Although various embodiments which incorporate the teachings of thepresent invention have been shown and described in detail herein, thoseskilled in the art can readily devise many other varied embodiments thatstill incorporate these teachings.

1. A method for converting a plurality of unicast sessions to amulticast session using the Session Initiation Protocol (SIP),comprising: receiving, at an application server, a request by a userdevice for content available from a content server; in response to therequest by the user device, determining whether a threshold number ofunicast sessions exist for delivering the content to other user devices;and in response to a determination by the application server that athreshold number of other unicast sessions exist for the content:generating a multicast source establishment message adapted for causinga multicast server to operate as a multicast session source fordelivering the content to the client devices using a multicast session,and propagating the multicast source establishment message toward themulticast server; generating a unicast session establishment messageadapted for causing a unicast session to be established between thecontent server and the multicast server for delivering the content fromthe content server to the multicast server, and propagating the unicastsession establishment message toward at least one of the content serverand the multicast server; and generating at least one multicast sessionjoin message adapted for enabling the other client devices to join themulticast session and propagating the at least one multicast sessionjoin message toward a SIP server adapted for propagating the at leastone multicast session join message toward the other client devices. 2.The method of claim 1, further comprising: receiving the multicastsource establishment message at the multicast server; and establishing,in response to the multicast source establishment message, the multicastsession adapted for delivering the content from the multicast server tothe client devices.
 3. The method of claim 1, further comprising:propagating the unicast session establishment message to the contentserver; receiving the unicast session establishment message at thecontent server; and in response to the unicast session establishmentmessage, establishing a unicast session between the content server andthe multicast server for delivering the content from the content serverto the multicast server.
 4. The method of claim 1, further comprising:receiving, at each of the other client devices, one of the at least onemulticast session join message; and initiating, from each of the otherclient devices, signaling for enabling each of the other client devicesto join the multicast session; wherein the signaling for enabling eachof the other client device to join the multicast session terminates eachof the other unicast sessions associated with each of the other clientdevices.
 5. The method of claim 1, further comprising: receiving, at theapplication server, a multicast session leave message associated withthe client device; in response to the multicast session leave message,determining whether the multicast session should be maintained; when adetermination is made that the multicast session should be maintained,delaying forwarding of the multicast session leave message toward thecontent server; when a determination is made that the multicast sessionshould not be maintained, forwarding the multicast session leave messagetoward the content server.
 6. The method of claim 1, wherein: theapplication server is a SIP application server; the request by the userdevice for content available from the content server is received at theSIP application server; the multicast source establishment message isgenerated by the SIP application server and propagated from the SIPapplication server toward the multicast server; the unicast sessionestablishment message is generated by the SIP application server andpropagated from the SIP application server toward at least one of thecontent server and the multicast server; and the at least one multicastsession join message is generated by the SIP application server andpropagated from the SIP application server toward the SIP server adaptedfor propagating the at least one multicast session join message towardthe other client devices.
 7. A non-transitory computer readable storagemedium storing instructions which, when executed by a computer, causethe computer to perform a method for converting a plurality of unicastsessions to a multicast session using the Session Initiation Protocol(SIP), the method comprising: receiving, at an application server, arequest by a user device for content available from a content server; inresponse to the request by the user device, determining whether athreshold number of unicast sessions exist for delivering the content toother user devices; and in response to a determination by theapplication server that a threshold number of other unicast sessionsexist for the content: generating a multicast source establishmentmessage adapted for causing a multicast server to operate as a multicastsession source for delivering the content to the client devices using amulticast session, and propagating the multicast source establishmentmessage toward the multicast server; generating a unicast sessionestablishment message adapted for causing a unicast session to beestablished between the content server and the multicast server fordelivering the content from the content server to the multicast server,and propagating the unicast session establishment message toward atleast one of the content server and the multicast server; and generatingat least one multicast session join message adapted for enabling theother client devices to join the multicast session and propagating theat least one multicast session join message toward a SIP server adaptedfor propagating the at least one multicast session join message towardthe other client devices.
 8. The non-transitory computer readablestorage medium of claim 7, further comprising instructions for:receiving, at the application server, a multicast session leave messageassociated with the client device; in response to the multicast sessionleave message, determining whether the multicast session should bemaintained; when a determination is made that the multicast sessionshould be maintained, delaying forwarding of the multicast session leavemessage toward the content server; when a determination is made that themulticast session should not be maintained, forwarding the multicastsession leave message toward the content server.
 9. The non-transitorycomputer readable storage medium of claim 7, wherein: the applicationserver is a SIP application server; the request by the user device forcontent available from the content server is received at the SIPapplication server; the multicast source establishment message isgenerated by the SIP application server and propagated from the SIPapplication server toward the multicast server; the unicast sessionestablishment message is generated by the SIP application server andpropagated from the SIP application server toward at least one of thecontent server and the multicast server; and the at least one multicastsession join message is generated by the SIP application server andpropagated from the SIP application server toward the SIP server adaptedfor propagating the at least one multicast session join message towardthe other client devices.
 10. An apparatus for converting a plurality ofunicast sessions to a multicast session using the Session InitiationProtocol (SIP), comprising: a processor configured for: receiving, at anapplication server, a request by a user device for content availablefrom a content server; in response to the request by the user device,determining whether a threshold number of unicast sessions exist fordelivering the content to other user devices; and in response to adetermination by the application server that a threshold number of otherunicast sessions exist for the content: generating a multicast sourceestablishment message adapted for causing a multicast server to operateas a multicast session source for delivering the content to the clientdevices using a multicast session, and propagating the multicast sourceestablishment message toward the multicast server; generating a unicastsession establishment message adapted for causing a unicast session tobe established between the content server and the multicast server fordelivering the content from the content server to the multicast server,and propagating the unicast session establishment message toward atleast one of the content server and the multicast server; and generatingat least one multicast session join message adapted for enabling theother client devices to join the multicast session and propagating theat least one multicast session join message toward a SIP server adaptedfor propagating the at least one multicast session join message towardthe other client devices.
 11. The apparatus of claim 10, wherein theprocessor is further configured for: receiving, at the applicationserver, a multicast session leave message associated with the clientdevice; in response to the multicast session leave message, determiningwhether the multicast session should be maintained; when a determinationis made that the multicast session should be maintained, delayingforwarding of the multicast session leave message toward the contentserver; when a determination is made that the multicast session shouldnot be maintained, forwarding the multicast session leave message towardthe content server.
 12. The apparatus of claim 10, wherein: theapplication server is a SIP application server; the request by the userdevice for content available from the content server is received at theSIP application server; the multicast source establishment message isgenerated by the SIP application server and propagated from the SIPapplication server toward the multicast server; the unicast sessionestablishment message is generated by the SIP application server andpropagated from the SIP application server toward at least one of thecontent server and the multicast server; and the at least one multicastsession join message is generated by the SIP application server andpropagated from the SIP application server toward the SIP server adaptedfor propagating the at least one multicast session join message towardthe other client devices.